home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / src / tools / checkaddr.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-02-28  |  1.5 KB  |  81 lines

  1. /*
  2.  *        C H E C K A D D R . C
  3.  *
  4.  *    Checks to determine if an address(s) is valid to mail to.
  5.  */
  6.  
  7. #include "util.h"
  8. #include "mmdf.h"
  9.  
  10. extern    char *rindex();
  11. extern  char *supportaddr;
  12.  
  13. main (argc, argv)
  14. int    argc;
  15. char    **argv;
  16. {
  17.     struct rp_bufstruct thereply;
  18.     char    linebuf[LINESIZE];
  19.     char    *cp;
  20.     int    i;
  21.     char    *subargs = "vm";
  22.  
  23.     mmdf_init( argv[0] );
  24.  
  25.     if (argc > 1 && strcmp (argv[1], "-w") == 0) {
  26.         subargs = "vmW";
  27.         argc--;
  28.         argv++;
  29.     }
  30.  
  31.     if (rp_isbad(mm_init()) || rp_isbad(mm_sbinit()) ||
  32.         rp_isbad(mm_winit ((char *)0, subargs, supportaddr)) ||
  33.         rp_isbad(mm_rrply( &thereply, &i )) ||
  34.         rp_isbad(thereply.rp_val)) {
  35.         printf("Cannot initialize mail system.  rp_line='%s'\n",
  36.             thereply.rp_line);
  37.         exit(9);
  38.     }
  39.         
  40.     if (argc > 1) {
  41.         for (i = 1; i < argc; i++)
  42.             verify( argv[i] );
  43.     } else {
  44.         while (fgets (linebuf, LINESIZE, stdin)) {
  45.             if (cp = rindex(linebuf, '\n'))
  46.                 *cp-- = 0;
  47.             verify( linebuf );
  48.         }
  49.     }
  50.     mm_end (NOTOK);
  51.     exit (0);
  52. }
  53.  
  54. verify (addr)
  55. char    *addr;
  56. {
  57.     struct rp_bufstruct thereply;
  58.     int    len;
  59.  
  60.     printf("%s: ", addr);
  61.     (void) fflush(stdout);
  62.  
  63.     if (rp_isbad (mm_wadr ((char *)0, addr))) {
  64.         if( rp_isbad( mm_rrply( &thereply, &len ))) {
  65.             printf ("Mail system problem\n");
  66.             mm_end (NOTOK);
  67.             exit( 8 );
  68.         } else
  69.             printf ("%s\n", thereply.rp_line);
  70.     } else {
  71.         if( rp_isbad( mm_rrply( &thereply, &len ))) {
  72.             printf ("Mail system problem\n");
  73.             mm_end (NOTOK);
  74.             exit (7);
  75.         } else if( rp_isbad( thereply.rp_val ))
  76.             printf ("%s\n", thereply.rp_line);
  77.         else
  78.             printf ("OK\n");
  79.     }
  80. }
  81.